EoIP SoftGRE стенд (Protocol Type: 0x6558)
Пример стенда для демонстрации EoIP SoftGRE между OpenWRT и Linux-сервером
Этот документ описывает настройку тестового стенда для демонстрации работы протокола EoIP SoftGRE (Protocol Type: 0x6558) между устройством под управлением OpenWRT и Linux-сервером. В стенде создаётся GRE-туннель с поддержкой VLAN, а также демонстрируется подключение тестовых устройств и оценка производительности работы тоннеля. Схема стенда:
Описание стенда
| GRE Key | Используется ключ 123 для идентификации туннеля |
| VLAN | Используются VLAN 10 и VLAN 20 для разделения трафика |
| OpenWRT-устройство RTR-2 | Настраивается GRE-туннель (gretap) с IP-адресом 192.168.109.172 и связывается с Linux-сервером (192.168.109.183). Порты LAN3 и LAN4 на устройстве OpenWRT настроены для VLAN 10 и VLAN 20 соответственно |
| Linux-сервер | Настраивается GRE-туннель (gretap1) с поддержкой VLAN 10 (gretap1.10) и VLAN 20 (gretap1.20), имеющих связанность через softgre-тоннель с тестовым PC1 и PC2 на портах LAN3 и LAN4 OpenWRT |
| Тестовые устройства | PC1 и PC2, подключённые к портам LAN3 и LAN4 на OpenWRT |
| Управление | MGMT PC для управления RTR-2 |
Настройка. Важные замечания
Для корректной передачи Ethernet-кадров через GRE-туннель необходимо учитывать следующие требования:
MTU — обязательно установить стандартный размер MTU 1500 для туннеля на OpenWRT и для GRE-интерфейсов на Linux-сервере. Это обеспечивает совместимость и предотвращает проблемы с фрагментацией
Фрагментация — для возможности передачи Ethernet-фреймов по IP-сети через туннель необходимо включить фрагментацию. На OpenWRT использовать параметр df='0' для разрешения фрагментации. На Linux-сервере использовать флаг nopmtudisc для отключения механизма Path MTU Discovery, что позволяет фрагментировать пакеты.
Примечания
- Убедитесь, что MTU на всех интерфейсах согласован (в данном случае 1500)
- Для работы GRE-туннеля может потребоваться разрешить GRE-протокол в брандмауэре на Linux-сервере (например, с помощью iptables или nftables)
- Используемые IP-адреса (192.168.109.172, 192.168.109.183) и имена интерфейсов (wlp0s20f3) должны быть заменены на актуальные в вашей среде
Тестирование
Связность внутри VLAN
VLAN 10
PC1 → ping 10.100.10.1
Сервер → ping 10.100.10.10
VLAN 20
PC2 → ping 10.100.20.1
Сервер → ping 10.100.20.10
Ожидается: 100% пакетов, нормальное время.
Изоляция VLAN
PC1 → ping 10.100.20.10 → не должен отвечать
PC2 → ping 10.100.10.10 → не должен отвечать
Трафик через туннель (GRE/EoIP)
На сервере захват:
tcpdump -i wlp0s20f3 -n -e host 10.100.10.10 or host 10.100.20.10
С PC1/PC2 пингуем → в захвате должны быть GRE-пакеты (proto 47).
Тест MTU / фрагментации
# Должен отброситься / фрагментироваться
ping -M do -s 1472 -c 3 10.100.10.10
# Должен пройти без проблем
ping -M do -s 1426 -c 3 10.100.10.10
Повторить для VLAN 20.
Если всё прошло → EoIP и VLAN работают корректно.
Пример дампа трафика
Будет видно, что при инкапсуляции пакетов в gre будет достаточно ощутимая просадка производительности: